#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
# @Date : 2024/6/17 10:54
# @Author : water
# @Description : json  解析器


"""
JSON概述
    JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。
    如果你还不了解 JSON，可以先阅读我们的 JSON 教程。
    Python3 中可以使用 json 模块来对 JSON 数据进行编解码，它包含了两个函数：
        json.dumps(): 对数据进行编码。 字符串到Json对象
        json.loads(): 对数据进行解码。 Json对象到python对象

Python 编码为 JSON 类型转换对应表：
    Python	                                JSON
    dict	                                object
    list, tuple	                            array
    str	                                    string
    int, float, int- & float-derived Enums	number
    True	                                true
    False	                                false
    None	                                null

JSON 解码为 Python 类型转换对应表：
    JSON	        Python
    object	        dict
    array	        list
    string	        str
    number (int)	int
    number (real)	float
    true	        True
    false	        False
    null	        None
"""

# json.dumps 与 json.loads 实例
import json

# Python 字典类型转换为 JSON 对象
data = {
    'no': 1,
    'name': 'Runoob',
    'url': 'https://www.runoob.com'
}

json_str = json.dumps(data)
print("Python 原始数据：", repr(data))  # Python 原始数据： {'no': 1, 'name': 'Runoob', 'url': 'https://www.runoob.com'}
print("JSON 对象：", json_str)  # JSON 对象： {"no": 1, "name": "Runoob", "url": "https://www.runoob.com"}


# 将一个JSON编码的字符串转换回一个Python数据结构：
# Python 字典类型转换为 JSON 对象
data1 = {
    'no': 1,
    'name': 'Runoob',
    'url': 'http://www.runoob.com'
}

json_str = json.dumps(data1)
print("Python 原始数据：", repr(data1))
print("JSON 对象：", json_str)

# 将 JSON 对象转换为 Python 字典
data2 = json.loads(json_str)
print("data2['name']: ", data2['name'])
print("data2['url']: ", data2['url'])